#ifndef __DIRSCANNER_H__
#define __DIRSCANNER_H__

#include <vector>
#include <string>

using namespace std;

// 单例模式，自动释放
class DirScanner
{
public:
    static DirScanner *getInstance();

    // 返回文件列表
    vector<string> &getFiles();

    // 遍历目录的入口函数
    void scan(const string &dirname);

private:
    DirScanner();
    ~DirScanner();
    static void init_r();
    static void destory();
    // 获取某一目录下的所有文件
    void traverse(const string &dirname);

private:
    vector<string> _files; // 存储每个语料文件的路径
    static DirScanner *_pInstance;
    static pthread_once_t _once;
};

#endif